package cn.px.hro.comprehensive_person_tax_income.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import cn.px.hro.company.domain.HroCompany;
import cn.px.hro.employee.domain.HroEmployee;
import cn.px.hro.sign_main.domain.HroSignMain;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import cn.px.common.annotation.Excel;
import cn.px.common.core.domain.BaseEntity;

/**
 * 综合个税所得对象 hro_comprehensive_person_tax_income
 *
 * @author ruoyi
 * @date 2023-11-30
 */
public class HroComprehensivePersonTaxIncome extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 员工表id */
    @Excel(name = "员工表id")
    private Long employeeId;

    /** 月份 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "月份", width = 30, dateFormat = "yyyy-MM-dd")
    private Date month;

    /** 本期收入 */
    @Excel(name = "本期收入")
    private BigDecimal currentIncome;

    /** 本期免税收入 */
    @Excel(name = "本期免税收入")
    private BigDecimal currentTaxFreeIncome;

    /** 一次性补偿金收入 */
    @Excel(name = "一次性补偿金收入")
    private BigDecimal onceCompensationIncome;

    /** 全年一次性奖金额 */
    @Excel(name = "全年一次性奖金额")
    private BigDecimal annualOnceBonusAmount;

    /** 年金领取收入额 */
    @Excel(name = "年金领取收入额")
    private BigDecimal annuityReceiveIncome;

    /** 已完税缴费额 */
    @Excel(name = "已完税缴费额")
    private BigDecimal paidTaxPaymentAmount;

    /** 全部缴费额 */
    @Excel(name = "全部缴费额")
    private BigDecimal fullPaymentAmount;

    /** 是否一次性领取0否1是 */
    @Excel(name = "是否一次性领取0否1是")
    private String isOnceReceive;

    /** 领取方式 */
    @Excel(name = "领取方式")
    private String receiveWay;

    /** 领取原因 */
    @Excel(name = "领取原因")
    private String receiveReason;

    /** 基本养老保险费 */
    @Excel(name = "基本养老保险费")
    private BigDecimal basicEndowmentInsurance;

    /** 基本医疗保险费 */
    @Excel(name = "基本医疗保险费")
    private BigDecimal basicMedicalInsurance;

    /** 失业保险费 */
    @Excel(name = "失业保险费")
    private BigDecimal accUnemploymentInsurance;

    /** 住房公积金 */
    @Excel(name = "住房公积金")
    private BigDecimal accHouseAf;

    /** 累计子女教育 */
    @Excel(name = "累计子女教育")
    private BigDecimal accChildrenEdu;

    /** 累计继续教育 */
    @Excel(name = "累计继续教育")
    private BigDecimal accContinueEdu;

    /** 累计住房贷款利息 */
    @Excel(name = "累计住房贷款利息")
    private BigDecimal accHouseLoanInterest;

    /** 累计住房租金 */
    @Excel(name = "累计住房租金")
    private BigDecimal accHouseRent;

    /** 累计赡养老人 */
    @Excel(name = "累计赡养老人")
    private BigDecimal accSupportElder;

    /** 累计3岁以下婴幼儿照护 */
    @Excel(name = "累计3岁以下婴幼儿照护")
    private BigDecimal accCareInfant;

    /** 累计个人养老金 */
    @Excel(name = "累计个人养老金")
    private BigDecimal accPersonPension;

    /** 企业（职业）年金 */
    @Excel(name = "企业", readConverterExp = "职=业")
    private BigDecimal enterpriseOccupationPension;

    /** 商业健康保险 */
    @Excel(name = "商业健康保险")
    private BigDecimal commercialHealthInsurance;

    /** 税延养老保险 */
    @Excel(name = "税延养老保险")
    private BigDecimal taxDeferPensionInsurance;

    /** 其他 */
    @Excel(name = "其他")
    private BigDecimal other;

    /** 允许扣除的税费 */
    @Excel(name = "允许扣除的税费")
    private BigDecimal allowDeductionTax;

    /** 准予扣除的捐赠额 */
    @Excel(name = "准予扣除的捐赠额")
    private BigDecimal allowDeductionDonation;

    /** 减免税额 */
    @Excel(name = "减免税额")
    private BigDecimal savingTax;

    /** 个税 */
    @Excel(name = "个税")
    private BigDecimal personIncomeTax;

    /** 类型1薪金所得2劳务所得3全年一次性奖金4一次性补偿金5年金领取 */
    @Excel(name = "类型1薪金所得2劳务所得3全年一次性奖金4一次性补偿金5年金领取")
    private String type;

    /** 状态0待审核 */
    @Excel(name = "状态0待审核")
    private String status;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setEmployeeId(Long employeeId)
    {
        this.employeeId = employeeId;
    }

    public Long getEmployeeId()
    {
        return employeeId;
    }
    public void setMonth(Date month)
    {
        this.month = month;
    }

    public Date getMonth()
    {
        return month;
    }
    public void setCurrentIncome(BigDecimal currentIncome)
    {
        this.currentIncome = currentIncome;
    }

    public BigDecimal getCurrentIncome()
    {
        return currentIncome;
    }
    public void setCurrentTaxFreeIncome(BigDecimal currentTaxFreeIncome)
    {
        this.currentTaxFreeIncome = currentTaxFreeIncome;
    }

    public BigDecimal getCurrentTaxFreeIncome()
    {
        return currentTaxFreeIncome;
    }
    public void setOnceCompensationIncome(BigDecimal onceCompensationIncome)
    {
        this.onceCompensationIncome = onceCompensationIncome;
    }

    public BigDecimal getOnceCompensationIncome()
    {
        return onceCompensationIncome;
    }
    public void setAnnualOnceBonusAmount(BigDecimal annualOnceBonusAmount)
    {
        this.annualOnceBonusAmount = annualOnceBonusAmount;
    }

    public BigDecimal getAnnualOnceBonusAmount()
    {
        return annualOnceBonusAmount;
    }
    public void setAnnuityReceiveIncome(BigDecimal annuityReceiveIncome)
    {
        this.annuityReceiveIncome = annuityReceiveIncome;
    }

    public BigDecimal getAnnuityReceiveIncome()
    {
        return annuityReceiveIncome;
    }
    public void setPaidTaxPaymentAmount(BigDecimal paidTaxPaymentAmount)
    {
        this.paidTaxPaymentAmount = paidTaxPaymentAmount;
    }

    public BigDecimal getPaidTaxPaymentAmount()
    {
        return paidTaxPaymentAmount;
    }
    public void setFullPaymentAmount(BigDecimal fullPaymentAmount)
    {
        this.fullPaymentAmount = fullPaymentAmount;
    }

    public BigDecimal getFullPaymentAmount()
    {
        return fullPaymentAmount;
    }
    public void setIsOnceReceive(String isOnceReceive)
    {
        this.isOnceReceive = isOnceReceive;
    }

    public String getIsOnceReceive()
    {
        return isOnceReceive;
    }
    public void setReceiveWay(String receiveWay)
    {
        this.receiveWay = receiveWay;
    }

    public String getReceiveWay()
    {
        return receiveWay;
    }
    public void setReceiveReason(String receiveReason)
    {
        this.receiveReason = receiveReason;
    }

    public String getReceiveReason()
    {
        return receiveReason;
    }
    public void setBasicEndowmentInsurance(BigDecimal basicEndowmentInsurance)
    {
        this.basicEndowmentInsurance = basicEndowmentInsurance;
    }

    public BigDecimal getBasicEndowmentInsurance()
    {
        return basicEndowmentInsurance;
    }
    public void setBasicMedicalInsurance(BigDecimal basicMedicalInsurance)
    {
        this.basicMedicalInsurance = basicMedicalInsurance;
    }

    public BigDecimal getBasicMedicalInsurance()
    {
        return basicMedicalInsurance;
    }
    public void setAccUnemploymentInsurance(BigDecimal accUnemploymentInsurance)
    {
        this.accUnemploymentInsurance = accUnemploymentInsurance;
    }

    public BigDecimal getAccUnemploymentInsurance()
    {
        return accUnemploymentInsurance;
    }
    public void setAccHouseAf(BigDecimal accHouseAf)
    {
        this.accHouseAf = accHouseAf;
    }

    public BigDecimal getAccHouseAf()
    {
        return accHouseAf;
    }
    public void setAccChildrenEdu(BigDecimal accChildrenEdu)
    {
        this.accChildrenEdu = accChildrenEdu;
    }

    public BigDecimal getAccChildrenEdu()
    {
        return accChildrenEdu;
    }
    public void setAccContinueEdu(BigDecimal accContinueEdu)
    {
        this.accContinueEdu = accContinueEdu;
    }

    public BigDecimal getAccContinueEdu()
    {
        return accContinueEdu;
    }
    public void setAccHouseLoanInterest(BigDecimal accHouseLoanInterest)
    {
        this.accHouseLoanInterest = accHouseLoanInterest;
    }

    public BigDecimal getAccHouseLoanInterest()
    {
        return accHouseLoanInterest;
    }
    public void setAccHouseRent(BigDecimal accHouseRent)
    {
        this.accHouseRent = accHouseRent;
    }

    public BigDecimal getAccHouseRent()
    {
        return accHouseRent;
    }
    public void setAccSupportElder(BigDecimal accSupportElder)
    {
        this.accSupportElder = accSupportElder;
    }

    public BigDecimal getAccSupportElder()
    {
        return accSupportElder;
    }
    public void setAccCareInfant(BigDecimal accCareInfant)
    {
        this.accCareInfant = accCareInfant;
    }

    public BigDecimal getAccCareInfant()
    {
        return accCareInfant;
    }
    public void setAccPersonPension(BigDecimal accPersonPension)
    {
        this.accPersonPension = accPersonPension;
    }

    public BigDecimal getAccPersonPension()
    {
        return accPersonPension;
    }
    public void setEnterpriseOccupationPension(BigDecimal enterpriseOccupationPension)
    {
        this.enterpriseOccupationPension = enterpriseOccupationPension;
    }

    public BigDecimal getEnterpriseOccupationPension()
    {
        return enterpriseOccupationPension;
    }
    public void setCommercialHealthInsurance(BigDecimal commercialHealthInsurance)
    {
        this.commercialHealthInsurance = commercialHealthInsurance;
    }

    public BigDecimal getCommercialHealthInsurance()
    {
        return commercialHealthInsurance;
    }
    public void setTaxDeferPensionInsurance(BigDecimal taxDeferPensionInsurance)
    {
        this.taxDeferPensionInsurance = taxDeferPensionInsurance;
    }

    public BigDecimal getTaxDeferPensionInsurance()
    {
        return taxDeferPensionInsurance;
    }
    public void setOther(BigDecimal other)
    {
        this.other = other;
    }

    public BigDecimal getOther()
    {
        return other;
    }
    public void setAllowDeductionTax(BigDecimal allowDeductionTax)
    {
        this.allowDeductionTax = allowDeductionTax;
    }

    public BigDecimal getAllowDeductionTax()
    {
        return allowDeductionTax;
    }
    public void setAllowDeductionDonation(BigDecimal allowDeductionDonation)
    {
        this.allowDeductionDonation = allowDeductionDonation;
    }

    public BigDecimal getAllowDeductionDonation()
    {
        return allowDeductionDonation;
    }
    public void setSavingTax(BigDecimal savingTax)
    {
        this.savingTax = savingTax;
    }

    public BigDecimal getSavingTax()
    {
        return savingTax;
    }
    public void setPersonIncomeTax(BigDecimal personIncomeTax)
    {
        this.personIncomeTax = personIncomeTax;
    }

    public BigDecimal getPersonIncomeTax()
    {
        return personIncomeTax;
    }
    public void setType(String type)
    {
        this.type = type;
    }

    public String getType()
    {
        return type;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("employeeId", getEmployeeId())
                .append("month", getMonth())
                .append("currentIncome", getCurrentIncome())
                .append("currentTaxFreeIncome", getCurrentTaxFreeIncome())
                .append("onceCompensationIncome", getOnceCompensationIncome())
                .append("annualOnceBonusAmount", getAnnualOnceBonusAmount())
                .append("annuityReceiveIncome", getAnnuityReceiveIncome())
                .append("paidTaxPaymentAmount", getPaidTaxPaymentAmount())
                .append("fullPaymentAmount", getFullPaymentAmount())
                .append("isOnceReceive", getIsOnceReceive())
                .append("receiveWay", getReceiveWay())
                .append("receiveReason", getReceiveReason())
                .append("basicEndowmentInsurance", getBasicEndowmentInsurance())
                .append("basicMedicalInsurance", getBasicMedicalInsurance())
                .append("accUnemploymentInsurance", getAccUnemploymentInsurance())
                .append("accHouseAf", getAccHouseAf())
                .append("accChildrenEdu", getAccChildrenEdu())
                .append("accContinueEdu", getAccContinueEdu())
                .append("accHouseLoanInterest", getAccHouseLoanInterest())
                .append("accHouseRent", getAccHouseRent())
                .append("accSupportElder", getAccSupportElder())
                .append("accCareInfant", getAccCareInfant())
                .append("accPersonPension", getAccPersonPension())
                .append("enterpriseOccupationPension", getEnterpriseOccupationPension())
                .append("commercialHealthInsurance", getCommercialHealthInsurance())
                .append("taxDeferPensionInsurance", getTaxDeferPensionInsurance())
                .append("other", getOther())
                .append("allowDeductionTax", getAllowDeductionTax())
                .append("allowDeductionDonation", getAllowDeductionDonation())
                .append("savingTax", getSavingTax())
                .append("personIncomeTax", getPersonIncomeTax())
                .append("type", getType())
                .append("status", getStatus())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
    @Getter
    @Setter
    private HroEmployee employee;

    @Getter
    @Setter
    private HroCompany company;

    @Getter
    @Setter
    private HroSignMain signMain;
    @Getter
    @Setter
    private String employeeName;

    @Getter
    @Setter
    private String companyName;

    @Getter
    @Setter
    private String signMainName;
}
